-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[20기_나혜인] Spring DB 모델링과 JPA 미션 제출합니다. #2
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
이번 주차 너무 고생하셨습니다!
상세하게 앞으로 구현하실 내용과 구현한 내용에 대해 readme에 작성해주신 것이 인상 깊었어요!
다음 주차에 리팩토링 하는 과정도 리드미에 있으면 더욱 좋을 거 같습니다 😊
private User user; | ||
|
||
private String text; | ||
private LocalDateTime timestamp; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
매 번 생성시간을 작성하는 로직을 넣기 보단 저희가 공부했던 AOP 기술을 활용해 자동으로 생성 당시의 시간으로 초기화하는 @EnableJpaAuditing 이라는 어노테이션을 사용할 수 있어요!
밑에 document 링크 넣어드릴께요 한 번 공부해보시고 적용해보세요~
https://docs.spring.io/spring-data/jpa/reference/auditing.html
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
뭔가 비효율적인 것 같다고 생각은 하고 있었는데 역시 그랬군요.. 참고링크까지 달아주셔서 감사합니다 ㅎㅎ 공부해보고 다음에 적용해보겠습니다!
spring: | ||
datasource: | ||
url: jdbc:mysql://localhost:3306/insta | ||
username: root |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
환경 변수로 설정해 중요정보를 가리면 좋을 거 같아요!
당장은 인텔리제이에서 작성하고 계실 거 같아 요걸 기준으로 링크 올려드릴께요
차후에 github secret에서 환경 변수를 설정하는 방법으로 확장할 수 있으니 적용해보세요!
import java.time.LocalDateTime; | ||
|
||
@Entity | ||
@Data |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Data 어노테이션은 Setter 어노테이션이 들어가있어 외부에서 필드값을 수정할 수 있어요
개인적으로는 지양하는 어노테이션입니다! postId 같은 절대 바뀌면 안되는 정보가 수정될 수 있기 때문이에요
사용할 어노테이션들만 명시해서 적용하는 방법을 고려해보면 좋을 거 같아요
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
무결성 측면에서 꼭 고려해야할 점인 것 같아요!세세하게 고려할 점들 봐주셔서 너무 큰 도움이 될 것 같습니다
); | ||
|
||
|
||
테이블이름 user로 했더니 단위테스트에서 오류계속발생.. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
User는 대부분의 db에서 keyword로 사용하고 있어서 에러가 발생하는 거 같아요
이를 피하기 위해서 Table 어노테이션에서 sql에서 사용할 이름을 수정하신 방법을 보통 쓰는 데 적절하게 대처하신 것 같습니다 👍
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
저랑 비슷한 과정을 겪으신 것 같아 혜인님 코드를 보면서 제 코드도 다시 한 번 되짚어볼 수 있었던 것 같아요! 2주차 과제도 고생하셨습니다 :)
!gradle/wrapper/gradle-wrapper.jar | ||
!**/src/main/**/build/ | ||
!**/src/test/**/build/ | ||
application.yml |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
application.yml
파일 업로드되지 않도록 .gitignore
에 추가해두신게 적용이 안된 것 같아요! 저도 같은 문제가 있었는데
git rm -r --cached .
git add .
git commit -m "commit message"
git push
이렇게 하시면 반영되더라구요! 참고하시면 좋을 것 같습니당
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
배포 시엔 이런 실수를 하지 않게 주의해야겠네요 해결방법까지 공유해주셔서 너무 감사합니다!! 다음에 적용해봐야겠어요
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
주석으로 given
, when
, then
에 대한 설명을 달아주신 점이 좋았어요! 저도 주석 작성하는 습관을 길러야겠습니다 ......!
앞으로의 구현계획과 엔티티 필드마다 무엇을 나타내는지 추가적으로 설명해주신 부분이 인상깊었습니다! 너무 수고 많으셨어요~~ |
private User receiver; | ||
|
||
private String text; | ||
private LocalDateTime timestamp; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
저는 엔티티가 처음 저장될 때 자동으로 생성시간이 설정되도록 @CreationTimeStamp 같은 어노테이션을 붙였는데, 어노테이션을 붙이지 않아도 자동으로 설정이 되나요?? 안돼서 추가적으로 구현해야 하는 걸로 알고 있는데 혹시 맞다면 자동으로 시간이 설정되도록 어노테이션 추가하는게 좋을 거 같습니다;)
import com.ceos20.springinstagram.domain.Comment; | ||
import java.util.List; | ||
|
||
@Repository |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
참고로 JpaRepository를 상속하여 구현한 repository에는 @repository 어노테이션을 굳이 붙이지 않아도 스프링이 자동으로 빈으로 등록해준다고 합니다!
No description provided.